﻿using RayDen.RayEngine.Core.Interface;

namespace RayDen.RayEngine.Core.Threads
{
    public abstract class RenderThread
    {
        public static int DeviceRenderBufferCount = 1;//Configuration.Instance.Get("Engine.DeviceRenderBufferCount", 1);
        protected int SAMPLE_BUFFER_SIZE = 4096;

        protected RenderThread(int index, IRayEngineScene scn)
        {
            threadIndex = index;
            scene = scn;
            started = false;
        }

        public virtual void Start() { started = true; }
        public virtual void Restart() { }
        public abstract void Interrupt();
        public virtual void Stop() { started = false; }
        public abstract void ClearPaths();
        public abstract int GetPass();

        public bool Running { get { return this.started; } }

        public ISampler sampler;

        public IImageFilm Film;

        protected int threadIndex;
        protected IRayEngineScene scene;
        protected bool started;
    }



}
